// #include <iostream>
// using namespace std;
// namespace lnb
// {
// 	template<class T>
// 	class great
// 	{
// 	public:
// 		T operator()(const T& x, const T& y)
// 		{
// 			return x + y;
// 		}
// 	};

// 	template<class T>
// 	class less
// 	{
// 	public:
// 		T operator()(const T& x, const T& y)
// 		{
// 			return x - y;
// 		}
// 	};
// }
// int main()
// {
// 	lnb::great<int> obj1;
// 	lnb::less<int> obj2;
// 	cout<<obj1(2,1)<<endl;
// 	cout << obj2(2, 1) << endl;
// 	lnb::great<int>()(2, 1);

// 	return 0;
// }

#include <iostream>
using namespace std;
template<typename T>
class testClass
{
public:
	static int _global;
};
//template<class T>
//int testClass<T>::_global = 10;

int testClass<int>::_global = 5;
int main()
{
	std::cout << testClass<class T>::_global << std::endl;
	std::cout << testClass<int>::_global << std::endl;
	std::cout << testClass<char>::_global << std::endl;
	testClass<double> f;
	cout <<testClass<double>::_global<< endl;
	/*testClass<int> obj1, obj2;
	testClass<char> obji1, obji2;
	std::cout << obj1._global << std::endl;
	std::cout << obj2._global << std::endl;
	std::cout << obji1._global << std::endl;
	std::cout << obji2._global << std::endl;
	obj1._global = 9;
	obji2._global = 20;
	std::cout << obj1._global << std::endl;
	std::cout << obj2._global << std::endl;
	std::cout << obji1._global << std::endl;
	std::cout << obji2._global << std::endl;*/
	return 0;
}
